#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N = 2e5;
const int maxn = 1e6;
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//

void solve()
{
	int n, m;
	sd(n);
	sd(m);
	priority_queue <int, vector<int>, greater<int>> pq;
	for (int i = 1; i <= n; i++)
	{
		int t;
		sd(t);
		pq.push(t);
	}

	while (m--)
	{
		int t;
		sd(t);
		pq.pop();
		pq.push(t);
	}
	ll ans = 0;
	while (!pq.empty())
	{
		ans += pq.top();
		pq.pop();
	}
	pld(ans);
	puts("");

}

int main()
{
	int T;
	sd(T);
	while (T--)
	{
		solve();
	}
	return 0;
}


